package session07.gui;

import javax.swing.*;
import java.awt.*;

public class FlowFrame extends JFrame {
    private Container contentP;
    private JButton jb1;
    private JButton jb2;
    private JButton jb3;
    private JButton jb4;
    private JButton jb5;

    public FlowFrame(){
        this.setSize(300,500); //设置宽、高
        Toolkit tk = Toolkit.getDefaultToolkit();
        this.setLocationRelativeTo(null);//传另一个容器就相对于另一个容器，传null就相对于屏幕
        this.setTitle("流布局管理器");
        this.setIconImage(tk.createImage("img/hp.JPG"));//设置窗体的图片
        this.setDefaultCloseOperation(this.EXIT_ON_CLOSE);//设置关闭窗口即关闭程序
        this.setResizable(true);//设置窗体大小不可变

        this.addContent();

        this.setVisible(true);//设置界面可见，永远放到最后
    }

    private void addContent() {
        this.contentP = this.getContentPane();
        /*
            JPanel所使用的默认布局管理器就是流布局
         */
        this.contentP.setLayout(new FlowLayout());

        /*
            流布局是按从左往右，从上往下，从中间开始的方式，依次add
            放入其中的组件。

            流布局最大的问题：当容器大小改变的时候，会改变里面组件放置的
            位置。
         */
        this.jb1 = new JButton("按钮1");
        this.jb2 = new JButton("按钮2");
        this.jb3 = new JButton("按钮3");
        this.jb4 = new JButton("按钮4按钮4按钮4按钮4");
        this.jb4.setFont(new Font("隶书",Font.BOLD,30));
        this.jb5 = new JButton("按钮5");

        this.contentP.add(this.jb1);
        this.contentP.add(this.jb2);
        this.contentP.add(this.jb3);
        this.contentP.add(this.jb4);
        this.contentP.add(this.jb5);

        /*
            流布局是用来按顺序排列组件的，而不是放子容器的（可以放，但是很少
            这么用）。而且它更适用于局部范围，且大小不变的时候使用。
         */

    }
}
